/*
静态数码管实验
单个数码管显示0~F字符
*/

#include"reg52.h"
#define SMG_A_DP_PORT P0 //使用宏定义数码管断码口

typedef unsigned int u16;//对系统默认数据类型进行重定义
typedef unsigned int u8;

void delay_10us(u16 ten_us)//延时函数12MHZ下450ms
{
	while(ten_us--)
	{}
}
//共阴极数码管显示0~F的段码数据，0x00表示什么也不显示
u8 typor[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void main()	
{
	u8 i=0;//选择变量，选择显示段码数据
	while(1)
	{
		SMG_A_DP_PORT=typor[0];//初始显示零
		i=1;
		delay_10us(50000);//添加显示延时
		while(i)//零后其他数显示
		{
			SMG_A_DP_PORT=typor[i];
			i++;
			delay_10us(50000);//添加显示延时
			if(i>=17)//超出数据范围跳出程序
			{
				break;
			}
		}
	}
}